In HPC applications, a computational task may be distributed over multiple nodes (or “processes”) in a network of computers. Each node performs part of the task, thus generating a partial result. In some cases, the partial results are then combined in some way, e.g., by summing, multiplying, or computing the minimum or maximum of the partial results. For example, the Message Passing Interface (MPI) for HPC defines a “reduction” operation MPI_Reduce, by which partial results are collected and combined, e.g., by being summed.
A computational task performed as described above may be referred to as a parallel computing task, in that the task is divided into multiple subtasks that are performed in parallel.
U.S. Pat. No. 9,110,860, whose disclosure is incorporated herein by reference, describes a computing method that includes accepting a notification of a computing task for execution by a group of compute nodes interconnected by a communication network, which has a given interconnection topology and includes network switching elements. A set of preferred paths, which connect the compute nodes in the group via at least a subset of the network switching elements to one or more root switching elements, are identified in the communication network based on the given interconnection topology and on a criterion derived from the computing task. The network switching elements in the subset are configured to forward node-level results of the computing task produced by the compute nodes in the group to the root switching elements over the preferred paths, so as to cause the root switching elements to calculate and output an end result of the computing task based on the node-level results.